package ConcorrenciaOptimista;

import java.util.List;


import JDBC.Constants;
import JDBC.DBConnection;
import JDBC.DBConnection.ConnectionHandler;




public class CtlConcorrenciaPessimista {
	
	private DBConnection dbconnLocked;
	private ConnectionHandler chLocked;
	
	
	public List<EventoPessimista> obterEventos() {
		return EventoPessimista.obterEventos();
		
	}
	
	public List<String> obterLugaresEvento(int idEvento){

		return EventoPessimista.obterLugaresEvento(idEvento);

	}
	
	public void reservarLugarEvento(int idEvento, String numeroLugar){
		EventoPessimista.reservarLugarEvento(idEvento, numeroLugar, dbconnLocked, chLocked);
		dbconnLocked = null;
		chLocked = null;
	}

	
		
	public void rollbackCurrentTransaction() {
		if(dbconnLocked != null) {
		EventoPessimista.anularTransacao(dbconnLocked);
		dbconnLocked = null;
		chLocked = null;
		}
		
	}
	
	public void trancarLugar(int idEvento, String numeroLugar) {
		dbconnLocked = new DBConnection(Constants.DB_NAME, Constants.USER, Constants.PASSWORD, false, null);
		
		chLocked = EventoPessimista.bloquearLugar(dbconnLocked, idEvento, numeroLugar);
		}
	}
	
	

		
